﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EntitiesLayer
{
    
    public class ProgramaEspacial: IEntity
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        private string nombre;
        public string Nombre {
            set { nombre = value; }
            get { return nombre; }
        }
        private DateTime fecha;
        public DateTime Fecha {
            get { return fecha; }
            set { fecha = value; }
        }
        private DateTime fechaFinalizacion;
        public DateTime FechaFinalizacion {
            set { fechaFinalizacion = value; }
            get { return fechaFinalizacion; }
        }
        private string alcance;
        public string Alcance {
            set { alcance = value; }
            get { return alcance; }
        }
        private Lazy<IList<Mission>> listaMissiones;
        public IList<Mission> ListaMissiones {
            get { return listaMissiones!=null?listaMissiones.Value:null; }
            
        }

        public ProgramaEspacial(string nombre, DateTime fecha, DateTime fechaFinalizacion, string alcance, 
             Lazy<IList<Mission>> missionesDelegate=null, int id=0) {

            listaMissiones = missionesDelegate;
            Id = id;
            Nombre = nombre;
            Fecha = fecha;
            FechaFinalizacion = fechaFinalizacion;
            Alcance = alcance;

        }

        public override string ToString()
        {
            return "Id: " + Id.ToString()
                + "\nNombre: " + Nombre
                + "\nFecha: " + Fecha.ToString()
                + "\nFecha de finalizacion: " + FechaFinalizacion.ToString()
                + "\nAlcance: " + Alcance.ToString();
        }

    }

}
